package zhengze;
/*
	public boolean matches(String regex)
    使用给定的正则表达式(regex)验证当前字符串的格式是否符合要求，符合则返回true，否则返回false
 */

public class MatchesDemo {
    public static void main(String[] args) {
    /**
     * 1.[]:表示一个字符,该字符可以是[]中指定的内容 例如:
     * [abc]:这个字符可以是a或b或c
     * [a-z]:表示任意一个小写字母
     * [a-zA-Z]:表示任意一个字母
     * [a-zA-Z0-9]:表示任意一个字母数字
     * [a-zA-Z0-9_]:表示任意一个数字字母下划线
     * [^abc]:该字符只要不是a或b或c
     * 2.预定义字符: .:表示任意一个字符,没有范围限制
     * \d:表示任意一个数字,等同于[0-9]
     * \w:表示任意一个单词字符,等同于[a-zA-Z0-9_]----单词字符指字母/数字/_
     * \s:表示任意一个空白字符
     * \D:表示不是数字
     * \W:不是单词字符
     * \S:不是空白字符
     * 3.量词: ?:表示前面的内容出现0-1次 例如: [abc]? 可以匹配:a 或 b 或 c 或什么也不写
     * +:表示前面的内容最少出现1次
     * 例如: [abc]+ 可以匹配:b或aaaaaaaaaa...或abcabcbabcbabcba....
     * 但是不能匹配:什么都不写 或 abcfdfsbbaqbb34bbwer...
     *
     * *:表示前面的内容出现任意次(0-多次)---匹配内容与+一致，只是可以一次都不写
     * 例如: [abc]* 可以匹配:b或aaaaaaaaaa...或abcabcba....或什么都不写
     * 但是不能匹配:abcfdfsbbaqbb34bbwer...
     *
     * {n}:表示前面的内容出现n次
     * 例如: [abc]{3} 可以匹配:aaa 或 bbb 或 aab 或abc 或bbc
     * 但是不能匹配: aaaa 或 aad
     *
     * {n,m}:表示前面的内容出现最少n次最多m次
     * 例如: [abc]{3,5} 可以匹配:aaa 或 abcab 或者 abcc
     * 但是不能匹配:aaaaaa 或 aabbd
     *
     * {n,}:表示前面的内容出现n次以上(含n次)
     * 例如: [abc]{3,} 可以匹配:aaa 或 aaaaa.... 或 abcbabbcbabcba....
     * 但是不能匹配:aa 或 abbdaw...
     *
     * 4.()用于分组,是将括号内的内容看做是一个整体
     * 例如: (abc){3} 表示abc整体出现3次. 可以匹配abcabcabc
     * 但是不能匹配aaa 或abcabc (abc|def){3}表示abc或def整体出现3次.
     */
    String email="wangkj@tedu.cn";
    String regex="[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)";
    Boolean match=email.matches(regex);
    if (match){
        System.out.println("这是个正常的邮箱格式");
    }else {
        System.out.println("这不是个正常的邮箱格式");
    }
}
}
